package org.szy.plugin.sys.service;

import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import org.szy.core.common.page.QueryPage;
import org.szy.core.common.param.CommonStatusParam;
import org.szy.core.common.service.BaseService;
import org.szy.plugin.sys.entity.SysUser;
import org.szy.plugin.sys.param.SysUserQueryParam;

/**
 * 系统用户表Service接口
 *
 * @author wangbuhao
 * @since 2023-06-27 09:56:03
 **/
public interface SysUserService extends BaseService<SysUser> {

    /**
     * 获取系统用户表查询Wrapper
     *
     * @author wangbuhao
     * @since 2023-06-27 09:56:03
     */
    QueryWrapper qwByQuery(SysUserQueryParam param);

    /**
     * 获取系统用户表分页
     *
     * @author wangbuhao
     * @since 2023-06-27 09:56:03
     */
    Page<SysUser> page(QueryPage<SysUser> page, SysUserQueryParam param);

    /**
     * 添加系统用户表
     *
     * @param entity 系统用户表对象
     * @return 操作结果
     */
    boolean add(SysUser entity);

    /**
     * 修改系统用户表状态
     *
     * @param param 状态参数
     * @return 是否成功
     */
    boolean modifyStatus(CommonStatusParam param);

    /**
     * 修改密码
     *
     * @param id       用户标识
     * @param password 新密码
     * @return 修改结果
     */
    boolean modifyPwd(Long id, String password);

    /**
     * 根据用户账户删除系统用户表
     *
     * @param account 用户账户
     * @return 用户对象
     */
    SysUser getByAccount(String account);

    /**
     * 修改头像
     *
     * @param id     用户id
     * @param avatar 头像
     */
    void modifyAvatar(Long id, String avatar);
}
